package org.dromara.hm.domain;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;

import java.io.Serial;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 客户信息对象 hm_customer
 *
 * @author zy Hu
 * @date 2024-12-15
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("hm_customer")
public class HmCustomer extends BaseEntity
{

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 客户id
     */
    @TableId(value = "customer_id")
    private Long customerId;

    /**
     * 客户名称
     */
    private String customerName;

    /**
     * 客户年龄
     */
    private String customerAge;

    /**
     * 客户性别
     */
    private String customerSex;

    /**
     * 客户出生年月
     */
    private String customerBirth;

    /**
     * 客户生日
     */
    private String customerBirthday;

    /**
     * 生日类型
     */
    private String birthdayType;

    /**
     * 政治面貌
     */
    private String political;

    /**
     * 籍贯
     */
    private String nativePlace;

    /**
     * 现住址
     */
    private String address;

    /**
     * 兴趣爱好
     */
    private String hobby;

    /**
     * 特长
     */
    private String specially;

    /**
     * 退休单位
     */
    private String retiredUnit;

    /**
     * 职称
     */
    private String title;

    /**
     * 结婚日
     */
    private String weddingDay;

    /**
     * 结婚日类型
     */
    private String weddingDayType;

    /**
     * 电话
     */
    private String phone;

    /**
     * 家庭角色(是否做主)
     */
    private String isBoss;

    /**
     * 退休金
     */
    private BigDecimal pension;

    /**
     * 既往病史
     */
    private String medicalHistory;

    /**
     * 身体状况
     */
    private String physicalCondition;

    /**
     * 是否养生保健
     */
    private String isHealthCare;

    /**
     * 服用产品
     */
    private String takingProducts;

    /**
     * 服用产品描述
     */
    private String takingProductsDesc;

    /**
     * 为什么购买
     */
    private String whyBuy;

    /**
     * 购买方式
     */
    private String buyMethod;

    /**
     * 购买人
     */
    private String buyer;

    /**
     * 积分币
     */
    private Long pointsCoin;

    /**
     * 积分标识
     */
    private Long pointsCoinId;

    /**
     * 会员等级
     */
    private String memberLevel;

    /**
     * 客户类型
     */
    private String customerType;

    /**
     * 客户活跃度
     */
    private String customerActivity;

    /**
     * 服务员工名称
     */
    private String staffName;

    /**
     * 服务员工标识
     */
    private Long staffId;

    /**
     * 服务店铺名称
     */
    @Translation(type= TransConstant.DEPT_ID_TO_NAME,mapper = "storeId")
    private String storeName;

    /**
     * 服务店铺标识
     */
    private Long storeId;

    /**
     * 家庭关系类型
     */
    @TableField(updateStrategy = FieldStrategy.ALWAYS)
    private String familyType;

    /**
     * 家庭标识
     */
    @TableField(updateStrategy = FieldStrategy.ALWAYS)
    private Long familyId;

    /**
     * 家庭名称
     */
    private String familyName;

    /**
     * 状态
     */
    private String status;

    /**
     * 备注
     */
    private String remark;

    /**
     * 是否为公海用户
     */
    private Boolean isPublic;

    /**
     * 最后维护时间
     */
    private String lastMaintainDate;

    /**
     * 是否删除
     */
    @TableLogic
    private Boolean delFlag;

}
